1. Field of the Invention
The present invention relates generally to numerical control of machines and more specifically and particularly to a new and improved method and apparatus for the manual CNC programming of numerical control machines and for such other structures and methods as may be herein disclosed.
2. Background Information
Shortly after the development of computer controlled machining in the late 1940's, it became evident that a computer could control the X, Y, and Z axes of a machine, but calculating the cutter location to be entered into the computer controller to cut the parts was difficult.
Many computer controlled machines are programmed using the NC programming language (EIA-274) which is comprised of straight-forward commands. As used herein EIA-274, G-Code and Word Address Programming are synonymous.
The techniques available for writing NC programs include Manual Programming, Conversational Programming, Graphic Based Computer Assisted Programming (CAM packages), Language Based Computer Assisted Programming (e.g., APT) and Parametric Programming. Of these techniques, Manual Programming is undoubtedly the most common.
The NC programming language is not a difficult language to use. The predominant problem with Manual NC programming is the determination of cutter location information. The cutter location information is the conversion of geometry supplied by the part drawing into the coordinates that the cutter must be moved to. Part drawings supply only the finished geometry. Depending on the job and the material, the programmer may have to include the cutter information for roughing operations.
Math:
The first and most fundamental technique to develop cutter location information is by using right angle trigonometry, algebra, or other mathematical tools. Math is the primary technique taught to students learning to program computer controlled machines. The two greatest drawbacks in the use of mathematics are the time necessary to do the calculations and the possibility for error. As more complex geometry is required to be machined, the calculations take more time with greater possibility of error.
APT:
In the mid-1950's, before graphics were an integral part of computers, the first language-based computer aided programming technique was developed. It is called APT for Automatic Programmed Tools. With this technique, the programmer describes the geometry of the part, the machining operation, the tool motion in a high-end programming language (e.g., FORTRAN). This program is compiled and debugged and compiled and debugged. After all the errors are worked out, the computer will perform all of the trigonometry and other mathematical requirements and generate an ANSI standardized “cutter location data file” also known as a cldata file.
To use this cutter location information on a machine tool, this “cldata” file has to be converted into the specific G-Code requirements of the computer controller. This task is accomplished using a secondary computer program called a “Post-Processor”.
The greatest problem with APT is that it is a convoluted, difficult, high-end programming language that most machinists, NC programmers, and manufacturing engineers do not understand.
After graphics were developed for computers, it was inevitable that they would be used to design parts and develop cutter location information. Surprisingly though, these two uses came from two different directions instead of working together.
CAM:
The third primary technique to develop cutter location information is the use of Computer Aided Manufacturing (CAM) software. There are many CAM systems on the market today, each offering its own unique advantages and disadvantages.
First of all, CAM systems are in the category: Graphic Based—Computer Assisted Programming Technique. Typically, these systems will retrieve a part designed in a CAD system, and using knowledge about the machining operation and internal algorithms, will graphically design the toolpaths. As necessary, and depending on the CAM system, the user can edit the toolpaths.
This graphical information is then processed internally by the CAM system to generate the cutter location information. Depending on the CAM system, it will generate either 1) The ANSI standardized cutter location data file, or 2) It may have an internal “post processor” capability that converts the cutter location information into the G-Code requirements of the machine tool without the user ever seeing the cutter location information.
The problems with CAM systems are that they are expensive, cumbersome, and require a level of knowledge and consistency of usage that is beyond that of typical machine tool operators. And, they are individual enough that knowing how to use one does not mean that a user can use them all.
CAD Measure Feature:
Another technique to generate cutter location information is to use the “measure” feature of a CAD system to measure the distance from what is referred to as Program Zero to the location of interest to the program.
This programming technique, like math, is under the category: Manual Programming. Although CAD is used to measure the coordinates that the cutter must be moved to, the programmer must manually transfer the information from the CAD system to paper and convert this information into the requirements of the machine controller. This task takes time with the potential for error.
Conversational Controllers:
Ultimately, the goal of all programming techniques is to write a program that will cut parts to the specifications of the design. Each process discussed thus far requires two steps: 1) generate a cutter location file, then, 2) convert it to the requirements of the machine controller.
Conversational Controllers are another way to generate a program. They employ an on-line (i.e., on the machine controller) programming technique that basically prompts the machine tool operator for information about the part features, such as contours, pockets, bolt hole patterns, etc. These controllers have internal algorithms that convert the supplied part feature information into program commands.
CAD Geometry:
The last technique has to do with using CAD geometry (i.e., lines, circles, and arcs) and converting these objects into G-code directly, in essence bypassing the cutter location step.
Actually, the cutter location information is not bypassed, it (like CAM) is converted to NC program code without the user ever seeing the cutter location information. The cutter location information is simply in a non-standardized format, i.e., it is the geometry of the part (the lines, arcs, and circles) that is converted into NC program code with significant data manipulations within the computer.
The problem with this technique is that, typically, the features that make up the part design are not created in the sequence required in the machining operation. This means if you want a linear move, you retrace the line, and a circular move requires retracing the arc.
NC Programming:
NC Programming is simply a direct translation of sequential machining decisions to the language the machine controller understands.
The persons involved with machining technology understand well how to select tools, spindle speeds, feedrates, and when to use or not use coolant. The fundamental problem with developing NC programs is a matter of determining the cutter location information, i.e., the X, Y, and Z coordinates.
Those skilled in the art of manual CNC programming know that manual CNC programming is tedious, error prone, and math intensive.
Simultaneously, manual CNC programming is so important to the Manufacturing Industry that it is taught to all levels of users of machining technology, i.e., to engineering students in universities to machining students in trade schools.
The primary reason to have manual CNC programming competence is because it is the foundation of computer controlled machining.
In practice, every time a part is to be cut on a computer controlled machine, those responsible for machining the part must determine if the program can be developed manually, or must be done with a CAD/CAM system.
And admittedly, with the standard knowledge of manual CNC programming, and the fact some parts are so simple, the CNC part program can be, should be, and is completed manually.
The text book approach to the steps involved with manual CNC programming are shown in FIG. 1, which is a prior art figure, and are as follows:
1) Plan the machining operation, i.e., select fixtures and tools, determine speeds and feeds.
2) Design the tool paths as required for profiling operations, determine the cutter coordinates and tabulate the cutter coordinates on paper.
3) Write, check and run the G-Code program.
Not all steps are required for all programming/machining jobs. Sometimes the machining task is so simple, for example drilling and counter boring operations, that the program can be keyed directly into the machine controller, bypassing most of the aforementioned steps.
The range of difficulty associated with how to determine the cutter coordinates, as mentioned in Step 2 above is broad. At times, cutter coordinates can be obtained directly from the part drawing. At other times a great deal of algebra and right angle trigonometry is required. A text book example that shows some of the math that may be required to obtain cutter coordinates is shown in FIG. 2, which is a prior art figure.
The text book approach to tabulate the cutter coordinates mentioned in Step 2 above is with the use of a coordinate sheet. A text book example that shows a combination of both the math required and the organizational cutter coordinate sheet is shown in FIG. 3, which is a prior art figure.
FIG. 4 is another prior art, text book example of a typical coordinate sheet. It is to be noted that this form of coordinate sheet was used as early as 1960.
Those skilled in the art know that in addition to the time and difficulty associated with the math requirements to generate cutter coordinates, there are other problems associated with manual CNC programming. The amount of time and errors associated with manually writing and checking the CNC program are well known.
Calculators and text editors on personal computers are two technologies currently available and commonly used to aid with the mathematical calculations of cutter coordinates and to write the CNC program respectively.
Although calculators and text editors are very beneficial, especially when compared to the alternatives, there are voids in the technology that, if made available, could alleviate much of the time and errors that are associated with manual CNC programming.
The missing technologies specifically include the lack of a means to perform a graphical verification of the tool path created by the manually generated cutter coordinates, the lack of a means to modify (copy, move program zero, etc.) the manually generated cutter coordinates, and most significantly a lack of a means to manually generate cutter coordinates with Computer Aided Design (CAD) technologies available that would be much easier, faster and more accurate than through the mathematical approach previously discussed herein.
Clearly, it would well serve the industry, specifically those that teach, learn, and use manual CNC programming to have means to perform these aforementioned tasks.
Among the references which set forth the general state of the art regarding numerical programming are the following:                Smid, Peter, CNC Programming Handbook, A Comprehensive Guide to Practical CNC Programming. 2003. 2nd Edition. New York: Industrial Press.        Valentino, James and Goldenberg, Joseph. Introduction to Computer Numerical Control (CNC). 2000. 2nd Edition. New Jersey: Prentice Hall.        Lynch, Mike. Computer Numerical Control for Machining. 1992. New York: McGraw Hill.        Polywka, John and Gabrel, Stanley. Programming of Computer Numerically Controlled Machines. 1992 New York: Industrial Press.        Nanfara, Frank, et al. The CNC Workbook, An Introduction to Computer Numerical Control. 1995. Massachusetts: Addison-Wesley.        Green, Robert E. Editor. Machinery's Handbook, 25th Edition. 1996. New York: Industrial Press.        Dallas, Daniel B. Editor. Tool and Manufacturing Engineers Handbook, A Reference Work for Manufacturing Engineers. 3rd Edition. 1976. New York: McGraw Hill.        Wilson, Frank W., Editor-in-Chief, Numerical Control in Manufacturing prepared by the American Society of Tool and Manufacturing Engineers. 1963. New York: McGraw Hill.        
Among the U.S. Pat. Nos. 6,704,611; 6,745,100 and 6,907,313 show relevant computer aided manufacturing. U.S. Pat. Nos. 6,904,394 and 6,795,749 relate to CAD data. U.S. Pat. Nos. 6,957,123; 6,889,114; 5,270,918; and 4,949,270 relate to automatic programming. Other examples of related prior art approaches will be found in the following U.S. patents: U.S. Pat. Nos. 6,907,312; 6,885,984; 6,868,359; 6,804,575; 6,741,905; 6,671,571; 6,643,560; 6,311,100; 6,112,133; 5,963,451; 5,584,016; 5,532,933; 5,297,022; 5,293,321; 4,928,221; 4,912,625; and 4,370,720. These items of prior art are seen as setting forth relevant background information, but none teaches or discloses the combination of steps and components of a system which constitute the present invention as disclosed and claimed.